import { noMustWriteDom } from './common'

export const propsTbody = [
  {
    name: 'layerActive',
    optionType: 'String',
    defaultValue: 'base',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，默认显示什么Arcgis底图，可选值有：base(白底地图)、terrain(地形图)、satellite(卫星图))')
      ])
    }
  },
  {
    name: 'defaultLayers',
    optionType: 'Array',
    defaultValue: '[]',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，可添加默认自定义图层')
      ])
    }
  },
  {
    name: 'isHideBase',
    optionType: 'Boolean',
    defaultValue: 'false',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否隐藏白底地图图层，默认不隐藏')
      ])
    }
  },
  {
    name: 'isHideTerrain',
    optionType: 'Boolean',
    defaultValue: 'false',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否隐藏地形图图层，默认不隐藏')
      ])
    }
  },
  {
    name: 'isHideSatellite',
    optionType: 'Boolean',
    defaultValue: 'false',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否隐藏卫星图图层，默认不隐藏')
      ])
    }
  },
  {
    name: 'isNeedWaterNet',
    optionType: 'Boolean',
    defaultValue: 'true',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否需要水网图层，默认需要')
      ])
    }
  },
  {
    name: 'isNeedRoadNet',
    optionType: 'Boolean',
    defaultValue: 'true',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否需要路网图层，默认需要')
      ])
    }
  },
  {
    name: 'isNeedClick',
    optionType: 'Boolean',
    defaultValue: 'false',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否需要地图点击事件，默认不需要，但后续需要加入普通图标图层，建议开启')
      ])
    }
  },
  {
    name: 'isNeedSizeChange',
    optionType: 'Boolean',
    defaultValue: 'false',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否需要 当地图发生拖拽、缩放或旋转时触发的事件，默认不需要，但后续需要加入普通图标图层，建议开启')
      ])
    }
  },
  {
    name: 'isNeedShowModal',
    optionType: 'Boolean',
    defaultValue: 'false',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否需要点击图标图层时，弹出信息框')
      ])
    }
  },
  {
    name: 'cloudRadarClass',
    optionType: 'String',
    defaultValue: '""',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，如果你需要云图雷达图层，那么可能你需要调整云图雷达显示时间的样式，这里允许你传入相对应的class名')
      ])
    }
  },
  {
    name: 'isNeedChosen',
    optionType: 'Boolean',
    defaultValue: 'true',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，是否需要显示切换 Arcgis 地图工具')
      ])
    }
  },
  {
    name: 'chosenClass',
    optionType: 'String',
    defaultValue: '""',
    desc: (h) => {
      return h('div', {}, [
        noMustWriteDom(h),
        h('span', {}, '，可能你需要调整选择底图区域的样式，这里允许你传入相对应的class名')
      ])
    }
  }

]

export const methodsTbody = [
  {
    name: 'getMap',
    parameter: '无',
    desc: '获取该地图实例'
  },
  {
    name: 'getLayers',
    parameter: '无',
    desc: '获取当前地图上的所有图层信息'
  },
  {
    name: 'addCustomLayer',
    parameter: 'ol.layer',
    desc: '添加自定义图层，必须传入一个正确的 ol.layer 图层'
  },
  {
    name: 'addLayer',
    parameter: 'Object',
    desc: '添加图层，Object里需要传入 layerName 参数，告诉方法你需要加入哪一个图层'
  },
  {
    name: 'removeLayer',
    parameter: 'Object',
    desc: '删除图层，Object里需要传入 layerName 参数，告诉方法你需要删除哪一个图层'
  },
  {
    name: 'removeCustomLayer',
    parameter: 'ol.layer',
    desc: '删除自定义图层，必须传入一个正确的 ol.layer 图层'
  },
  {
    name: 'refreshAnimate',
    parameter: 'Object',
    desc: '用作云图和雷达图刷新动画，Object里需要传入 layerName 参数，layerName可传参数cloudLayer(云图)或radarLayer()'
  }
]

export const emitTbody = [
  {
    name: 'mapClick',
    returnValue: '该点的数据',
    desc: '当 props isNeedClick 为true，点击地图时触发，返回该点的经纬度，以及所包含的layerName和features'
  },
  {
    name: 'mapSizeChange',
    returnValue: 'event',
    desc: '当 props isNeedSizeChange 为true，地图发生旋转、移动或缩放时触发，返回当前地图的信息'
  }
]

export const slotTbody = [
  {
    name: 'loading',
    desc: '替换等待图层加载时的Loading'
  }
]

export const layerNameThead = (vm) => [
  {
    key: 'name',
    title: '图层名字',
    width: 120,
    align: 'center'
  },
  {
    key: 'layerName',
    title: '对应 layerName',
    width: 180,
    align: 'center'
  },
  {
    title: '说明',
    key: 'desc',
    render: (h, params) => {
      const { desc } = params.row

      if (typeof desc === 'string') {
        return h('span', {}, desc)
      }
      return desc(h, vm)
    }
  }
]

export const layerNameTbody = [
  {
    name: '水网',
    layerName: 'waterNetLayer',
    desc: '--'
  },
  {
    name: '路网',
    layerName: 'roadNetLayer',
    desc: '--'
  },
  {
    name: '气象预警',
    layerName: 'weatherWarningLayer',
    desc: '--'
  },
  {
    name: '云图',
    layerName: 'cloudLayer',
    desc: '--'
  },
  {
    name: '雷达图',
    layerName: 'radarLayer',
    desc: '--'
  },
  {
    name: '水闸',
    layerName: 'gateLayer',
    desc: '--'
  }
]
